/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package business;

import java.math.BigDecimal;

/**
 * Classe correspondant aux enregistrements de la table product
 * Implémente l'interface Comparable pour pourvoir trier les produits
 * par nom dans le panier
 * @author Thomas
 * @version 1.0
 * @see business.BasketMgr#getProducts()
 */
public class Product implements Comparable {

    private int ID;
    private String name;
    private BigDecimal price;
    private int stock;
    private String description;
    private int categoryID;

    /**
     * Seul constructeur de la classe, initialise tous les attributs
     * @param id
     * @param name
     * @param price
     * @param stock
     * @param description
     * @param categoryID
     */
    public Product(int id, String name, BigDecimal price, int stock, String description, int categoryID) {
        this.ID = id;
        this.name = name;
        this.price = price;
        this.stock = stock;
        this.description = description;
        this.categoryID = categoryID;
    }

    /**
     * Description du produit
     * @return Description du produit
     */
    public String getDescription() {
        return description;
    }

    /**
     * ID du produit
     * @return ID du produit
     */
    public int getID() {
        return ID;
    }

    /**
     * Nom du produit
     * @return Nom du produit
     */
    public String getName() {
        return name;
    }

    /**
     * Prix du produit
     * @return Prix du produit
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * Quantité de produit en stock
     * @return Quantité de produit en stock
     */
    public int getStock() {
        return stock;
    }

    /**
     * ID de la catégorie à laquelle appartient le produit
     * @return ID de la catégorie du produit
     * @see business.Category
     */
    public int getCategoryID() {
        return categoryID;
    }

    @Override
    public int compareTo(Object o) {
        Product product = (Product) o;
        return this.name.compareTo(product.getName());
    }

}
